import $http from './request.js';
export default {
  // 用户token
  token: false,
  // 用户信息
  userinfo: false,

  // 初始化
  __init () {
    // 获取用户信息
    this.userinfo = uni.getStorageSync ('userinfo');
    this.token = uni.getStorageSync ('token');
  },

  // 权限验证跳转
  navigate(options, type = 'navigateTo') {
    let res = uni.getStorageSync("userinfo");
    if (!res) {
      uni.showToast({
        title: '请先登录',
        duration: 2000,
        icon:"none"
    });
      // uni.showModal({
      //   title: '提示',
      //   content: '您还没有登录，是否前往？',
      //   success: function (res) {
      //     if (res.confirm) {
            
      //       uni.switchTab({url:"../pages/login/login"})
             
      //       } else if (res.cancel) {
      //         return
      //           console.log('用户点击取消');
      //       }
      //   }
      // });
      return
    }
    // 是否登录验证
    // if (!$http.checkToken (true)) return;
    // 验证是否绑定手机号
    // if (!$http.checkAuth (true)) return;
    // 跳转
    switch (type) {
      case 'navigateTo':
        uni.navigateTo (options);
        break;
      case 'redirectTo':
        uni.redirectTo (options);
        break;
      case 'reLaunch':
        uni.reLaunch (options);
        break;
      case 'switchTab':
        uni.switchTab (options);
        break;
    }
  },

  // 登录
  async login (option = {}) {
    uni.showLoading ({title: '登录中...', mask: true});

    // 请求登录
    let [err,res] = await $http.post(option.url, option.data);
    // 登录成功  保存状态
    this.token = res.data.user.token;
    this.userinfo = this.__formatUserinfo (res.data.user);
    // 本地存储
    uni.setStorageSync ('userinfo', this.userinfo);
    uni.setStorageSync ('token', this.token);

    // 成功提示
    uni.hideLoading ();
    uni.showToast ({title: '登录成功'});
    setTimeout (() => {
      uni.switchTab ({
        url: '/pages/home/home',
      });
    }, 500);

    return true;
  },

  // 退出登录
  async logout (showToast = true) {
    // 退出登录
    await $http.post (
      '/user/logout',
      {},
      {
        token: true,
        checkToken: true,
      }
    );
    // 清除缓存
    uni.removeStorageSync ('userinfo');
    uni.removeStorageSync ('token');
    // 清除状态
    this.token = false;
    this.userinfo = false;
    // 关闭socket
    // 返回home页面
    uni.switchTab ({url: '/pages/home/home'});
    // 退出成功
    if (showToast) {
      return uni.showToast ({title: '退出登录成功'});
    }
  },

  // userinfo格式转换
  __formatUserinfo(obj) {
    // 手机/邮箱/账号登录
    if (
      obj.username
    ) {
      // 设置默认头像
      obj.userpic =
        obj.userpic || 'http://img.touxiangwu.com/2020/3/bERzIb.jpg';
      return obj;
    }
  },
};
